#include <stdio.h>
#include <stdlib.h>

void foo()
{
    int* p = (int*)malloc(sizeof(int));
    return;
}//memory leak 

int main ()
{
    int * p = NULL;

    p = (int *) malloc(4 * sizeof(int));
    //some statements
    p = (int *) malloc(8 * sizeof(int));
    free (p);

    for(int i = 0 ; i<1024 ; i++)
    {
        p = (int *) malloc(1024*1024*1024);
    }
    printf("end\n");
    return 0;

    // int a = 0;
    // int b = 0;
    // int c = 0;
    // printf ("%p\n",&a);
    // printf ("%p\n",&b);
    // printf ("%p\n",&c);
    // int * p1 = (int*) malloc (4);
    // int * p2 = (int*) malloc (4);
    // int * p3 = (int*) malloc (4);
    // printf ("%p\n",p1);
    // printf ("%p\n",p2);
    // printf ("%p\n",p3);
    
}